/**
 *	一秋
 *	路由跳转函数
 *	2022-05-17
 *	付天博
 */
class Jump{
	navigateTo(url){ 
		uni.navigateTo({url})
	}
	redirectTo(url){
		uni.redirectTo({url})
	}
	reLaunch(url){
		uni.reLaunch({url})
	}
	switchTab(url){
		uni.switchTab({url})
	}
	navigateBack(delta = 1){
		uni.navigateBack({delta});
	}
	navigateBackTime(delta = 1){
		setTimeout(()=>{
			uni.navigateBack({delta});
		},1500)
	}
}

// 跳转到登录页面并记录来源
export function navigateToLogin(sourceUrl = '', sourceParams = {}) {
	// 构建跳转参数
	const params = {
		source_url: encodeURIComponent(sourceUrl),
		source_params: encodeURIComponent(JSON.stringify(sourceParams))
	};
	
	// 构建URL参数字符串
	const queryString = Object.keys(params)
		.map(key => `${key}=${params[key]}`)
		.join('&');
	
	// 跳转到登录页面
	uni.navigateTo({
		url: `/pages/login/index?${queryString}`
	});
}

// 检查登录状态，如果未登录则跳转到登录页面
export function checkLoginAndRedirect(sourceUrl = '', sourceParams = {}) {
	// 获取登录状态
	const userInfo = uni.getStorageSync('userInfo');
	
	if (!userInfo || !userInfo.token) {
		// 未登录，跳转到登录页面
		navigateToLogin(sourceUrl, sourceParams);
		return false;
	}
	
	return true;
}

export default new Jump()